-
Notifications
You must be signed in to change notification settings - Fork 148
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fixes #28065 - package dynflow sidekiq service files #4194
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
3e6b14c
to
da5ca60
Compare
@@ -711,6 +713,34 @@ Meta Package to install requirements for Redis caching support | |||
%files redis | |||
%{_datadir}/%{name}/bundler.d/redis.rb | |||
|
|||
%package dynflow-sidekiq |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does this package conflict with the regular dynflow service? Can both run at the same time? What happens if they do? Is the new dynflow-sidekiq optional?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, it doesn't conflict, and it is not trying to remove it, if someone runs both, they will share the load and loadbalance.
dynflow-sidekiq
is installed in installer only if the option is turned on (theforeman/puppet-foreman#761) so yes, it's optional.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does the singleton nature of the dynflow sidekiq orchestrator play well with the current dynflow executor if both are deployed simultaneously?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, that doesn't really matter, the separation is not really affecting the old deployment.
d4a5d4f
to
e996cf7
Compare
e996cf7
to
0e64cd8
Compare
sed -i '/^ExecStart/ s|/usr/bin/sidekiq \(.\+\)$|/usr/bin/scl enable tfm "sidekiq \1"|' %{buildroot}%{_unitdir}/%{dynflow_sidekiq_service_name}.service | ||
|
||
for i in orchestrator.yml worker.yml; do | ||
mv %{buildroot}%{_datadir}/%{name}/config/dynflow/$i %{buildroot}%{_sysconfdir}/%{name}/dynflow/ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you indent these lines?
%{_unitdir}/%{dynflow_sidekiq_service_name}.service | ||
%{_datadir}/%{name}/script/dynflow-sidekiq.rb | ||
|
||
%install dynflow-sidekiq |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think you can have separate %install
sections. At least, we don't use it anywhere else.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So I should install it in the main package directly? or to use build section?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Main %install
is fine. Then within %files
you split it up again.
7a6eef5
to
72fb13d
Compare
Also needs an entry in comps. |
72fb13d
to
d397dca
Compare
Added comps section, moved install to main install. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The build is failing because you need to increase the release and add a changelog.
b76c315
to
42cab18
Compare
Add changelog line |
535d6c1
to
8989c1f
Compare
The build failure is due to the nodejs changes that are going on. |
This current design installs and starts "classic" dynflow by default. As I understood things, the target was for the new dynflow-sidekiq to be the default? If we are keeping "classic" dynflow as the default, installing this new subpackage will configure and start dynflow-sidekiq while leaving classic dynflow running as is. Is this what a user should expect? That feels like it will lead to inconsistencies. |
@ehelms this is now addressed in the installer PR theforeman/puppet-foreman#761 it will disable the old service for you once you select the sidekiq to be installed. If you are not using installer you're on your own to figure it out though. |
39dd0ec
to
74a32ec
Compare
this is now blocked on the core PR: |
[test rpm] |
74a32ec
to
08040e4
Compare
Any idea why the tests are failing now? 😞 |
Because there wasn't a new source tarball with the new file. There is now. |
🍾 Thanks @ekohl. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd like @ehelms to ack as well before merging.
@@ -2,6 +2,7 @@ | |||
%global confdir extras/packaging/rpm/sources | |||
%global foreman_rake %{_sbindir}/%{name}-rake | |||
%global executor_service_name dynflowd | |||
%global dynflow_sidekiq_service_name dynflow-sidekiq@ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Given the repetition I'm inclined to add .service
here but I'm fine either way. I'd probably do a cleanup of all service handling later anyway.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would like to stay consistent with the dynflowd
service, otherwise I would agree 🤔
Figured I would give this a basic runtime test, I am seeing the following (note the service timed out starting):
Further, the current design leads to unclear logging from a system perspective in my opinion:
Note that the service listed is |
I'm looking at https://github.com/mperham/sidekiq/blob/master/examples/systemd/sidekiq.service and it has some neat tricks:
Memory fragmentation fix:
I'm wondering if the |
considering that this is experimental in 1.24, perhaps we can merge if it works and improve afterwards if needed? |
@tbrisker That was my plan. My comment was to indicate I did not get it to work, and to identify some issues that if we don't fix now, are captured in issues that block it going from "beta" to "GA". |
I am trying to address the comments in theforeman/foreman#7127 - not to forget them. |
@ezr-ondrej beat me to it :) |
@tbrisker I wanted to see this in action to know this packaging change plus the code works if someone installs it and then manually configures Redis. I have not reached that point yet, working through it. |
Should we add a |
[test rpm] |
Depend on: